dados = read_csv(
    here::here("data/participation-per-country.csv"),
    col_types = cols(
        .default = col_double(),
        site = col_character(),
        country = col_character(),
        geo = col_character(),
        four_regions = col_character(),
        eight_regions = col_character(),
        six_regions = col_character(),
        `World bank income group 2017` = col_character()
    )
) %>% 
    filter(usuarios > 200)
glimpse(dados)
## Observations: 121
## Variables: 21
## $ site                           <chr> "StackOverflow", "StackOverflow",…
## $ country                        <chr> "Argentina", "Australia", "Austri…
## $ PDI                            <dbl> 49, 36, 11, 80, 65, 69, 70, 39, 6…
## $ IDV                            <dbl> 46, 90, 55, 20, 75, 38, 30, 80, 2…
## $ MAS                            <dbl> 56, 61, 79, 55, 54, 49, 40, 52, 2…
## $ UAI                            <dbl> 86, 51, 70, 60, 94, 76, 85, 48, 8…
## $ usuarios                       <dbl> 2798, 12313, 2518, 2558, 4275, 10…
## $ responderam_prop               <dbl> 0.5357398, 0.6133355, 0.6310564, …
## $ perguntaram_prop               <dbl> 0.5210865, 0.5897832, 0.5933280, …
## $ editaram_prop                  <dbl> 0.09256612, 0.14699911, 0.1493248…
## $ comentaram_prop                <dbl> 0.25339528, 0.33395598, 0.3502780…
## $ GNI                            <dbl> NA, 59570, 48160, 840, 44990, 116…
## $ Internet                       <dbl> 51.0, 79.5, 79.8, 5.0, 78.0, 45.0…
## $ EPI                            <dbl> 59.02, NA, 63.21, NA, 61.21, 49.9…
## $ geo                            <chr> "arg", "aus", "aut", "bgd", "bel"…
## $ four_regions                   <chr> "americas", "asia", "europe", "as…
## $ eight_regions                  <chr> "america_south", "east_asia_pacif…
## $ six_regions                    <chr> "america", "east_asia_pacific", "…
## $ Latitude                       <dbl> -34.00000, -25.00000, 47.33333, 2…
## $ Longitude                      <dbl> -64.00000, 135.00000, 13.33333, 9…
## $ `World bank income group 2017` <chr> "Upper middle income", "High inco…

Estamos interessados na relação entre quanto as pessoas de diferentes países comentam em questões dos outros. A proporção das pessoas do país que comentou nas questões de outros está medido na variável comentaram_prop.

Considerando essa variável, queremos examinar a relação entre ela e o quão hierárquicas são as relações em um país (PDI). Queremos também levar em conta o quanto as pessoas daquele país têm acesso à Internet (Internet) e qual o tamanho da base de dados que detectamos daquele país (usuarios).

Examinando essa relação

Faça uma visualização que usa os princípios de eficácia no projeto de visualizações para facilitar as comparações que você acha que são as mais importantes para entendermos esse contexto.

Vamos analisar a relação entre a proporção das pessoas do país que comentou nas questões de outros e o quanto as pessoas desse país tem acesso à Internet. As cores dos pontos representam o quão hierárquicas são as relações naquele país. O gráfico da esquerda representa o site StackOverflow e o gráfico da direita representa o site SuperUser.

vis_principal <- dados %>% ggplot(aes(
    x = Internet,
    y = comentaram_prop,
    country = country,
    color = PDI
)) + geom_point() + facet_grid(. ~ site)

ggplotly(vis_principal)
dadosFiltrados = dados %>%
    filter(!is.na(Internet) & !is.na(comentaram_prop))

cor(dadosFiltrados$Internet, dadosFiltrados$comentaram_prop)
## [1] 0.6251064

Podemos perceber algumas relações nessa visualização: primeiramente, existe uma correlação positiva entre a proporção de comentários feitos nas perguntas dos outros e o quanto um determinado país tem acesso à Internet. Outra coisa que percebemos também é que os pontos mais escuros (que são os países menos individualistas) são também os quem mais comentam nas perguntas de outros usuários de cada um dos sites.

Outras formas de ver

Em seguida, faça 5 visualizações que usem as mesmas variáveis e também pontos, mas que sejam menos eficazes que a que você escolheu acima.

1. Formato dos pontos para agrupar os sites

vis_menos_eficaz_1 <- dados %>% ggplot(aes(
    x = Internet,
    y = comentaram_prop,
    country = country,
    color = PDI,
    shape = site
)) + geom_point()

ggplotly(vis_menos_eficaz_1)

Se removermos o agrupamento dos gráficos (como feito no primeiro exemplo) e ainda assim quisermos informar visualmente de qual site vem aquela informação, podemos alterar o formato dos pontos (no exemplo acima, os quadrados representao o StackOverflow e os triângulos representam o SuperUser). No entanto, isso gera uma maior quantidade de pontos num mesmo gráfico, o que pode dificultar a visualização e entendimento do leitor.

2. Tamanho dos pontos para exibir a quantidade de usuários

vis_menos_eficaz_2 <- dados %>% ggplot(aes(
    x = Internet,
    y = comentaram_prop,
    country = country,
    color = PDI,
    size = usuarios
)) + geom_point() + facet_grid(. ~ site)

ggplotly(vis_menos_eficaz_2)

O tamanho dos pontos ajuda a diferenciar quais são os países que têm mais usuários e quais têm menos, mas essa forma de visualização não é tão eficaz para comparar quais países têm menos usuários, dado que temos muitos pontos pequenos com pouca variação no tamanho de exibição (em outras palavras, é fácil perceber a variação de tamanhos, mas não é tão fácil comparar pontos pequenos entre eles, principalmente se não estiverem próximos).

3. Cor dos pontos para agrupar os sites

vis_menos_eficaz_3 <- dados %>% ggplot(aes(
    x = Internet,
    y = comentaram_prop,
    country = country,
    color = site
)) + geom_point()

ggplotly(vis_menos_eficaz_3)

Nessa visualização, sacrificamos as cores dos pontos que antes exibia o quão hierárquicas são as relações naquele país para exibirmos o site. Essa visualização é eficaz para as variáveis que a mesma tenta exibir, no entanto, comparada com a primeira visualização desse relatório, ela é menos eficaz por ter menos dados exibidos para o leitor.

4. Tamanho dos pontos exibem quão hierárquicas são as relações no país (ao invés da cor)

vis_menos_eficaz_4 <- dados %>% ggplot(aes(
    x = Internet,
    y = comentaram_prop,
    country = country,
    size = PDI
)) + geom_point(alpha = 0.6) + facet_grid(. ~ site)

ggplotly(vis_menos_eficaz_4)

Aqui, ainda conseguimos perceber que os pontos menores (países menos individualistas) são os que mais comentam, contudo, temos uma sobreposição de vários pontos (percebemos por estarem transparentes), que pode dificultar no entendimento dessa visualização.

5. PDI no tamanho dos pontos e quantidade de usuários nas cores

vis_menos_eficaz_5 <- dados %>% ggplot(aes(
    x = Internet,
    y = comentaram_prop,
    country = country,
    size = PDI,
    color = usuarios
)) + geom_point(alpha = 0.7) + facet_grid(. ~ site)

ggplotly(vis_menos_eficaz_5)

Com relação ao PDI: fica difícil comparar os pontos com maiores PDI por possuírem um variação muito pequena. Exibir a quantidade de usuários na cor dos pontos também dificulta a visualização quando se compara pontos com pequena variação na cor.

Bônus

Inclua o continente dos países (six_regions) na visualização.

Utilizando a função facet_wrap do ggplot para agrupar em gráficos por regiões, temos:

vis_six_regions <- dados %>% filter(!is.na(six_regions)) %>% 
    ggplot(aes(
        x = Internet,
        y = comentaram_prop,
        country = country,
        color = PDI
    )) + geom_point() + facet_wrap(~ six_regions)

ggplotly(vis_six_regions)

Com esse agrupamento, percebe-se primeiramente que a maior concentração de pontos está no continente europe_central_asia. Os continentes south_asia e sub_saharian_africa são os que contêm menos pontos. Percebe-se também que a maior quantidade de países menos individualistas (baixo PDI) estão no continente europe_central_asia.